home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 014 / libtools.arc / CAS2SPK.AQM / CAS2SPK.ASM
Encoding:
Assembly Source File  |  1984-04-08  |  1.8 KB  |  67 lines

  1. title program to echo cassette input to speaker
  2. name echo1
  3. ;
  4. ;
  5. port_a         equ     60h
  6. port_b         equ     61h
  7. port_c         equ     62h
  8. ;
  9. ;
  10. dseg           segment para stack 'stack'
  11.                db     64 dup('stack   ')
  12. dseg           ends
  13. ;
  14. ;
  15. ;
  16. cseg           segment para public 'code'
  17. start          proc    far
  18.                assume    cs:cseg,ss:dseg
  19. ;
  20.                call      motor_on
  21. again:         in        al,port_c      ; read port_c
  22.                cmp       al,32h
  23.                je        bit_on
  24. bit_off:       call      speaker_off
  25.                jmp       again
  26. bit_on:        call      speaker_on
  27.                jmp       again
  28.                ret
  29. start          endp
  30. ;
  31. ;
  32. motor_on       proc    near
  33.                in   al,port_b        ; read cassette output
  34.                and  al,not 08h       ; clear bit to turn on motor
  35.                out   port_b,al       ; reset bit to turn on motor
  36.                ret
  37. motor_on       endp
  38. ;
  39. ;
  40. motor_off      proc    near
  41.                in   al,port_b        ; read port_b settings
  42.                or   al,08h           ; set bit to turn motor off
  43.                out  port_b,al        ; reset port register
  44.                ret
  45. motor_off      endp
  46. ;
  47. ;
  48. speaker_on     proc    near
  49.                in   al,port_b        ; read port_b settings
  50.                or   al,3h            ; set bits for speaker on
  51.                out  port_b,al        ; reset port register
  52.                ret
  53. speaker_on     endp
  54. ;
  55. ;
  56. speaker_off    proc    near
  57.                in   al,port_b        ; read port_b settings
  58.                and  al,not 3h        ; set bits off for speaker off
  59.                out  port_b,al        ; reset port register
  60.                ret
  61. speaker_off    endp
  62. ;
  63. ;
  64. ;
  65. cseg           ends
  66.                end
  67.